package model

// 后台用户表
type User struct {
	Id        uint   `gorm:"column:id;type:int unsigned;primaryKey;autoIncrement;not null;comment:用户ID" form:"id" json:"id"` //用户ID
	Username  string `gorm:"column:username;type:varchar(100);not null;comment:登录用户名" form:"username" json:"username"`       //登录用户名
	Password  string `gorm:"column:password;type:char(32);not null;comment:用户密码" form:"password" json:"password"`            //用户密码
	RandCode  string `gorm:"column:rand_code;type:char(25);not null;comment:随机掩码" form:"rand_code" json:"rand_code"`         //用户密码加密的随机掩码
	Nickname  string `gorm:"column:nickname;type:varchar(100);comment:昵称" form:"nickname" json:"nickname"`                   //昵称
	RegTime   string `gorm:"column:reg_time;type:datetime;comment:注册时间" form:"reg_time" json:"reg_time"`                     //注册时间
	Status    uint8  `gorm:"column:status;type:tinyint unsigned;comment:用户状态" form:"status" json:"status"`                   //用户状态 0-正常 1-禁止登录
	IsLock    uint8  `gorm:"column:is_lock;type:tinyint unsigned;comment:是否密码锁定" form:"is_lock" json:"is_lock"`              //是否密码锁定
	LockTime  string `gorm:"column:lock_time;type:datetime;comment:密码锁定时间" form:"lock_time" json:"lock_time"`                //密码锁定时间
	LoginTime string `gorm:"column:login_time;type:datetime;comment:最后一次登录时间" form:"login_time" json:"login_time"`           //最后一次登录时间
}

// 返回所属表名信息
func (c *User) TableName() string {
	return "user"
}

// 用户登录日志
type UserLoginlog struct {
	Id        uint   `gorm:"column:id;type:int unsigned;primaryKey;autoIncrement;not null;comment:主键ID" form:"id" json:"id"` //主键ID
	Uid       uint   `gorm:"column:uid;type:int unsigned;not null;comment:用户ID" form:"uid" json:"uid"`                       //用户ID
	Type      uint8  `gorm:"column:type;type:tinyint unsigned;comment:日志类型" form:"type" json:"type"`                         //日志类型 0-登录 1-注册 2-重置密码 3-密码输入错误 4-锁定日志
	CreatedAt string `gorm:"column:created_at;type:datetime;comment:事件发生时间" form:"created_at" json:"created_at"`             //事件发生时间
	CreatedIp string `gorm:"column:created_ip;type:varchar(100);comment:条目记录IP" form:"created_ip" json:"created_ip"`         //条目记录IP
}

// 返回所属表名信息
func (c *UserLoginlog) TableName() string {
	return "user_loginlog"
}
